home *** CD-ROM | disk | FTP | other *** search
/ Celestin Apprentice 5 / Apprentice-Release5.iso / Source Code / Libraries / DCLAP 6d / dclap6d / DBio / DSeqFile.h < prev    next >
Text File  |  1996-07-05  |  2KB  |  98 lines

  1. // DSeqFile.h 
  2. // by d.g.gilbert, Oct 1990 
  3.  
  4.  
  5. #ifndef __DSEQFILE__
  6. #define __DSEQFILE__
  7.  
  8.  
  9.         
  10.  
  11. #include "DSequence.h"
  12. #include <DFile.h>
  13. #include <DList.h>
  14.  
  15. class DSeqList;
  16. class DSequence;
  17.  
  18.     // reader/writer formats
  19.  
  20. class DSeqFile 
  21. {
  22. public:
  23.  
  24.  enum seqformats {
  25.      kIG            =  1,
  26.      kGenBank       =  2,
  27.      kNBRF          =  3,
  28.      kEMBL          =  4,
  29.      kGCG           =  5,
  30.      kStrider       =  6,
  31.      kFitch         =  7,
  32.      kPearson       =  8,
  33.      kZuker         =  9,
  34.      kOlsen         =  10,
  35.      kPhylip2       =  11,
  36.      kPhylip4       =  12,
  37.      kPhylip3       =  12, //kPhylip4,
  38.      kPhylip        =  12, //kPhylip4,
  39.      kPlain         =  13, /* keep this at #13  */
  40.      kPIR           =  14,
  41.      kMSF           =  15,
  42.      kASN1          =  16,
  43.      kPAUP          =  17,
  44.      kPretty        =  18,
  45.     
  46.      kMaxFormat     =  18,
  47.      kMinFormat     =  1,
  48.      kNoformat      =  -1,    /* format not tested */
  49.      kUnknown       =  0,     /* format not determinable */
  50.     
  51.         /* subsidiary types */
  52.      kASNseqentry   =  51,
  53.      kASNseqset     =  52,
  54.      kPhylipInterleave = 61,
  55.      kPhylipSequential = 62 
  56.      };
  57.  
  58.     static Boolean gWriteMasks;
  59.     static char* fgMacSire;
  60.     
  61.     static void DontSaveMasks();
  62.     static void DoSaveMasks();
  63.  
  64.     static const char* FormatName(short index); 
  65.     static short FormatFromName(const char* name); 
  66.  
  67.     static DSequence* MakeSequence(char* name, char*& bases, char* info, long modtime);
  68.     
  69.     static short SeqFileFormatWrapper(DFile* aFile); 
  70.     
  71.     static short ReadSeqFile( DFile* aFile, DSeqList* aSeqList); 
  72.     
  73.     static void    WriteSeqHeader( DFile* aFile,
  74.                                 short format, short nseqs, long nbases,    char* outputName,
  75.                                 Boolean& needSameSize, Boolean& isInterleaved);
  76.                                 
  77.     static void    WriteSeqTrailer(  DFile* aFile,
  78.                                 short format, short nseqs, short nlinesperseq, long nbases);
  79.                                 
  80.     static void WriteSeqWrapper(  DFile* aFile,
  81.                                 char *seq, long seqlen, short outform, char *seqid);
  82.  
  83.     static void WriteMaskWrapper(  DFile* aFile,
  84.                                 char *mask, long seqlen, short outform, char *seqid);
  85.                                                                 
  86.     static void    DoInterleave( DFile* aFile, DFile* fromFile,
  87.                                 short outform, short seqtype, short nseqs, long nbases,
  88.                                 short nlines, short noutindex, long* outindex);
  89. private:
  90.     static char*  FixSeqID( char* s, short leftmargin = 0);
  91.     static Boolean gSaveMasks;
  92. };
  93.  
  94.  
  95. extern char* gOutputName;
  96.  
  97. #endif
  98.